﻿using EntityModels.Entities;
using Microsoft.EntityFrameworkCore;


namespace EntityModels.DbContexts
{
    /// <summary>
    /// 索引
    /// </summary>
    public class IndexDbContext : DbContext
    {
        public DbSet<IndexEntity> IndexEntities => Set<IndexEntity>();

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<IndexEntity>(b =>
            {
                // 配置索引列
                b.HasIndex(i => new { i.Text4, i.Text5 })
                // 配置被索引包含的内容列
                .IncludeProperties(i => new
                {
                    i.Number1,
                    i.Number2
                })
                // 配置为唯一索引
                .IsUnique()
                // 配置索引名称
                .HasDatabaseName("MyIndex2")
                // 配置索引过滤器(仅索引符合条件的行)
                .HasFilter("[Text4] is not null or [Text5] is not null");
            });
        }
    }
}
